/**
 * @license
 * Copyright Akveo. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import {APP_BASE_HREF} from '@angular/common';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {NgModule} from '@angular/core';
import {HttpClientModule} from '@angular/common/http';
import {CoreModule} from './@core/core.module';

import {AppComponent} from './app.component';
import {AppRoutingModule} from './app-routing.module';
import {ThemeModule} from './@theme/theme.module';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import {CustomLinkRender} from "./utils/CustomLinkRender";
import {DisableEditRender} from "./utils/DisableEditRender";
import {CommonFormDialog} from "./utils/CommonFormDialog";
import {NbButtonModule, NbCardModule, NbCheckboxModule, NbInputModule, NbSelectModule} from "@nebular/theme";
import {CustomDateRender} from "./utils/CustomDateRender";
import {LoginComponent} from "./login/login-component";
import {FormsModule} from "@angular/forms";
import {MySmartTable} from "./utils/MySmartTable";
import {Ng2SmartTableModule} from "ng2-smart-table";
import {ApiModule} from "./energy/api";
import {CustomBooleanRender} from "./utils/CustomBooleanRender";
import {CustomTimeRender} from "./utils/CustomTimeRender";
import {CustomMoneyRender} from "./utils/CustomMoneyRender";

@NgModule({
  declarations: [AppComponent
    ,CustomLinkRender,DisableEditRender,CustomDateRender,CustomBooleanRender,CustomTimeRender,CustomMoneyRender
    ,CommonFormDialog
    ,LoginComponent
    ,MySmartTable],
  entryComponents:[
    CustomLinkRender,DisableEditRender,CommonFormDialog,CustomDateRender,CustomBooleanRender,CustomTimeRender,CustomMoneyRender
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    AppRoutingModule,
    ApiModule,
    NgbModule.forRoot(),
    ThemeModule.forRoot(),
    CoreModule.forRoot(),
    NbCardModule,
    NbInputModule,
    NbButtonModule,
    FormsModule,
    Ng2SmartTableModule,
    NbCheckboxModule,
    NbSelectModule,
    NgbModule.forRoot()
  ],
  bootstrap: [AppComponent],
  providers: [
    { provide: APP_BASE_HREF, useValue: '/' },
  ],
})
export class AppModule {
}
